#include <iostream>

template <typename T> class Sample {
private:
  T n;

public:
  Sample(T n) : n(n){};
  bool operator==(const Sample &t) { return t.n == this->n; };
};

int main() {
  Sample<int> s1 = Sample<int>(1);
  Sample<int> s2 = Sample<int>(1);
  Sample<std::string> s3 = Sample<std::string>("sadfasf");
  Sample<std::string> s4 = Sample<std::string>("sadfadsf");
  std::cout << (s1 == s2) << std::endl;
  std::cout << (s4 == s3) << std::endl;
}
